package com.pdd.util;

import java.io.File;
import java.text.DecimalFormat;

/**
 * 文件相关工具类。
 */
public class FileUtil {

    /**
     * 创建文件夹（当不存在时）。
     *
     * @param dirPath 文件夹路径。
     */
    public static void mkdirIfNotExists(String dirPath) {
        File file = new File(dirPath);
        if (!file.exists()) {
            file.mkdir();
        }
    }

    /**
     * 获取友好表示方式的文件大小，例如返回：1.5GB。
     *
     * @param size 文件大小。
     * @return 友好表示方式。
     */
    public static String getSizeFriendly(long size) {
        // 记录原始大小
        double oldSize = size;

        // 所有的单位，从小到大，1024进制。
        String[] dw = {"B", "KB", "MB", "GB", "TB", "PB"};

        // 计算单位下标（多少个1024次方）
        int index = 0;
        while (size / 1024 > 0) {
            index++;
            size /= 1024;
        }

        // 计算文件大小，保留两位小数点
        DecimalFormat decimalFormat = new DecimalFormat("0.00");
        double newSize = oldSize/Math.pow(1024, index);

        return decimalFormat.format(newSize) + dw[index];
    }

}

